package Controle;

import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.swing.JOptionPane;
import modelo.Produto;

/**
 *
 * @author Denize
 */
public class ControlProduto {

    Produto prod = new Produto();// instanciar o produto
    Produto modelo = new Produto();
    Conectabanco conexproduto = new Conectabanco(); // instaniar o banco

    public void inserirproduto(Produto prod) {
        conexproduto.conexao();

        try {
            PreparedStatement pst = conexproduto.conn.prepareStatement(" insert into produto(nome_produto,nome_fornecedor,quantidade, valor_compra,valor_venda,id_produto)"
                    + "values(?,?,?,?,?,?)");
            pst.setString(1, prod.getDescproduto());
            pst.setString(2, prod.getNomefornecedor());
            pst.setInt(3, prod.getQtdproduto());
            pst.setFloat(4, prod.getValvenda());
            pst.setFloat(5, prod.getValcompra());
            pst.setInt(6, prod.getIdproduto());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Produto cadastrado com sucesso!");
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao inserir o produto!\nERRO:" + ex);
            conexproduto.desconecta();
        }

    }

    public void editaProduto(Produto prod) {
        conexproduto.conexao();
        try {
            PreparedStatement pst = conexproduto.conn.prepareStatement(" update produto set nome_produto=?,valor_compra=?,valor_venda=?, quantidade=?,nome_fornecedor=? where id_produto=?");
            pst.setInt(1, prod.getIdproduto());
            pst.setString(2, prod.getDescproduto());
            pst.setInt(3, prod.getQtdproduto());
            pst.setFloat(4, prod.getValcompra());
            pst.setFloat(5, prod.getValvenda());
            pst.setString(6, prod.getNomefornecedor());
            pst.executeUpdate();

            JOptionPane.showMessageDialog(null, "Produto Alterado com sucesso!");

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Alterar o produto!\nERRO:" + ex);

        }

    }

    public void ExcluirProduto(Produto prod) {
        conexproduto.conexao();
        try {
            PreparedStatement pst = conexproduto.conn.prepareStatement("delete from produto where id_produto=?");
            pst.setInt(1, prod.getIdproduto());
            pst.execute();
            JOptionPane.showMessageDialog(null, "Produto excluido com sucesso!");

        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao Excluir o produto!\nERRO:" + ex);

        }

    }

    public Produto buscaProduto(Produto modelo) {


        conexproduto.conexao();
        conexproduto.executaSQL("Select * from Produto where nome_produto like '%" + modelo.getPesqproduto() + "%'");
        try {

            // PreparedStatement pst = conexproduto.conn.prepareStatement("Select * from Produto where nome_produto like '%" + modelo.getPesqproduto() + "%'");
            //conexproduto.rs.first();
            // conexproduto.executeQuery();
            conexproduto.rs.first();
            prod.setIdproduto(conexproduto.rs.getInt("id_produto"));
            prod.setDescproduto(conexproduto.rs.getString("nome_produto"));
            prod.setValcompra(conexproduto.rs.getFloat("valor_compra"));
            prod.setValvenda(conexproduto.rs.getFloat("valor_venda"));
            prod.setQtdproduto(conexproduto.rs.getInt("quantidade"));
            prod.setNomefornecedor(conexproduto.rs.getString("nome_fornecedor"));
            conexproduto.rs.next();
        } catch (SQLException ex) {
            JOptionPane.showMessageDialog(null, "Erro ao buscar o produto!\nERRO:" + ex);
        }
        conexproduto.desconecta();
        return prod;

    }
}
